
import koaStatic from 'koa-static';
import path from 'path';
import { fileURLToPath } from 'url';

/**
 * koa-static 是一个用于在 Koa.js 应用中提供静态文件服务的中间件。
 * 它允许你轻松地提供诸如 HTML、CSS、JavaScript、图片等静态资源。
 * 
 * import.meta
 * import.meta 是一个在 ES 模块（ESM）中提供模块元数据的对象。
 * 它包含了当前模块的元数据信息。import.meta 的属性因环境而异。
 * 1. url 属性：返回当前模块的 URL。 // file:xxx/middleware/koa-static.js
 * 2. dirname 属性：返回当前模块所在的目录名。 // xxx/middleware
 * 3. filename 属性：返回当前模块的文件名。 // xxx/middleware/koa-static.js
 * 4. resolve 属性：返回一个函数，用于解析模块路径。
 * 
 * staticPath - 静态文件路径
 * const staticPath = path.join(import.meta.dirname, '../public');
 */

const __filename = fileURLToPath(import.meta.url); // 获取当前文件的 URL
const __dirname = path.dirname(__filename); // 获取当前文件的目录名
export const staticPath = path.join(__dirname, '../public'); // 静态文件路径
console.log(staticPath); // xxx/middleware/../public

export default () => koaStatic(staticPath);